#ifndef MGDESKTOP_H
#define MGDESKTOP_H

#include "Foundation.h"
#include "PlatformBase.h"

#ifdef _WIN32
#ifdef DESKTOP_EXPORTS
#    define MG_DESKTOP_API __declspec(dllexport)
#else
#    define MG_DESKTOP_API __declspec(dllimport)
#endif
#else
#define MG_DESKTOP_API
#endif

#if !defined(DWFTK_USE_DWFCORE_ZLIB)
    #define DWFTK_USE_DWFCORE_ZLIB
#endif
#pragma warning( disable : 4290 )

#include "System/ClassId.h"
#include "System/ConfigProperties.h"
#include "System/PlatformInit.h"

#include "Exception/DuplicateParameterException.h"
#include "Exception/DwfException.h"
#include "Exception/DwfSectionNotFoundException.h"
#include "Exception/DwfSectionResourceNotFoundException.h"
#include "Exception/InvalidDwfPackageException.h"
#include "Exception/InvalidDwfSectionException.h"
#include "Exception/InvalidFeatureSourceException.h"
#include "Exception/ParameterNotFoundException.h"
#include "Exception/StylizeLayerFailedException.h"

#include "MapLayer/Layer.h"
#include "MapLayer/Map.h"
#include "MapLayer/Selection.h"

#include "Services/DataReader.h"
#include "Services/DrawingService.h"
#include "Services/FeatureReader.h"
#include "Services/FeatureService.h"
#include "Services/ImageFormats.h"
#include "Services/PlotSpecification.h"
#include "Services/RenderingService.h"
#include "Services/ResourceService.h"
#include "Services/ServiceFactory.h"
#include "Services/SqlReader.h"
#include "Services/TileService.h"
#include "Services/Transaction.h"

#include "Services/Feature/RdbmsFeatureSourceParams.h"

#include "Services/Rendering/RenderingOptions.h"

#define NOT_IMPLEMENTED(method) \
	throw new MgNotImplementedException(method, __LINE__, __WFILE__, NULL, L"", NULL)

//Stub for now
#define MG_LOG_TRACE_ENTRY(method)
#define MG_LOG_ERROR_ENTRY(message)

#endif